using Gateway.IApplication.BaseInput;
using Gateway.IApplication.Language.Input;
using Gateway.Infrastructure.AutoDI;

namespace Gateway.IApplication.Language;

/// <summary>
/// 运行语言配置
/// </summary>
public interface ILanguageApp : IDependency
{
    /// <summary>
    /// 创建/更新
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> Set(CreateLanguageInput input);

    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> Remove(RemoveInput input);

    /// <summary>
    /// 禁用/启用
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> Disable(DisableInput input);


    /// <summary>
    /// 设置运行语言的公共类库
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> SetExtensionCode(LanguageExtensionCodeInput input);


    /// <summary>
    /// 删除扩展代码
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<bool> RemoveCode(RemoveInput input);
}